home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 46
/
Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso
/
-in_the_mag-
/
reader_requests
/
scilab
/
man
/
man-part1
/
cat3
/
bloc2ss.3
< prev
next >
Wrap
Text File
|
1999-09-16
|
4KB
|
133 lines
bloc2ss(1) Scilab Function bloc2ss(1)
NAME
bloc2ss - block-diagram to state-space conversion
CALLING SEQUENCE
[sl]=bloc2ss(blocd)
PARAMETERS
blocd : list
sl : list
DESCRIPTION
Given a block-diagram representation of a linear system bloc2ss converts
this representation to a state-space linear system. The first element of
the list blocd must be the string 'blocd'. Each other element of this list
is itself a list of one the following types :
list('transfer','name_of_linear_system')
list('link','name_of_link',
[number_of_upstream_box,upstream_box_port],
[downstream_box_1,downstream_box_1_portnumber],
[downstream_box_2,downstream_box_2_portnumber],
...)
The strings 'transfer' and 'links' are keywords which indicate the type of
element in the block diagram.
Case 1 : the second parameter of the list is a character string which may
refer (for a possible further evaluation) to the Scilab name of a linear
system given in state-space representation (syslin list) or in transfer
form (matrix of rationals).
To each transfer block is associated an integer. To each input and output
of a transfer block is also associated its number, an integer (see exam-
ples)
Case 2 : the second kind of element in a block-diagram representation is a
link. A link links one output of a block represented by the pair
[number_of_upstream_box,upstream_box_port], to different inputs of other
blocks. Each such input is represented by the pair
[downstream_box_i,downstream_box_i_portnumber].
The different elements of a block-diagram can be defined in an arbitrary
order.
For example
[1] S1*S2 with unit feedback.
There are 3 transfers S1 (number n_s1=2) , S2 (number n_s2=3) and an adder
(number n_add=4) with symbolic transfer function ['1','1'].
There are 4 links. The first one (named 'U') links the input (port 0 of
fictitious block -1, omitted) to port 1 of the adder. The second and third
one link respectively (output)port 1 of the adder to (input)port 1 of sys-
tem S1, and (output)port 1 of S1 to (input)port 1 of S2. The fourth link
(named 'Y') links (output)port 1 of S2 to the output (port 0 of fictitious
block -1, omitted) and to (input)port 2 of the adder.
//Initialization
syst=list('blocd'); l=1;
//
//Systems
l=l+1;n_s1=l;syst(l)=list('transfer','S1'); //System 1
l=l+1;n_s2=l;syst(l)=list('transfer','S2'); //System 2
l=l+1;n_adder=l;syst(l)=list('transfer',['1','1']); //adder
//
//Links
// Inputs -1 --> input 1
l=l+1;syst(l)=list('link','U1',[-1],[n_adder,1]);
// Internal
l=l+1;syst(l)=list('link',' ',[n_adder,1],[n_s1,1]);
l=l+1;syst(l)=list('link',' ',[n_s1,1],[n_s2,1]);
// Outputs // -1 -> output 1
l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
With s=poly(0,'s');S1=1/(s+1);S2=1/s; the result of the evaluation call
sl=bloc2ss(syst); is a state-space representation for 1/(s^2+s-1).
[2] LFT example
//Initialization
syst=list('blocd'); l=1;
//
//System (2x2 blocks plant)
l=l+1;n_s=l;syst(l)=list('transfer',['P11','P12';'P21','P22']);
//
//Controller
l=l+1;n_k=l;syst(l)=list('transfer','k');
//
//Links
l=l+1;syst(l)=list('link','w',[-1],[n_s,1]);
l=l+1;syst(l)=list('link','z',[n_s,1],[-1]);
l=l+1;syst(l)=list('link','u',[n_k,1],[n_s,2]);
l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);
With
P=syslin('c',A,B,C,D);
P11=P(1,1);
P12=P(1,2);
P21=P(2,1);
P22=P(2,2);
K=syslin('c',Ak,Bk,Ck,Dk);
bloc2exp(syst) returns the evaluation the lft of P and K.
SEE ALSO
bloc2exp
AUTHOR
S. S., F. D. (INRIA)